Nginx 开启 https 访问
Nginx 的 ssl 模块
在配置 ssl 证书之前,要确保你的 nginx 已经安装了 ssl 模块。这里先检查下自己是否存在 ssl 模块。RPM 包安装的默认都有。
shell
# 进入到目录的 sbin 目录
cd /usr/sbin/
# 注意这里是大写的V,小写的只显示版本号。如果打印出来的参数中存在 --with-http_ssl_module, 则已安装
./nginx -V
配置 ssl 证书
生成并自动续签证书参考:Nginx%20 使用%20acme.sh%20 生成和自动续签证书
需要压缩可参考:Nginx 开启 gzip 压缩
准备好证书,并放到指定目录:
shell
/etc/nginx/ssl/*.aday.fun.key
/etc/nginx/ssl/fullchain.cer
修改配置
shell
vim /etc/nginx/nginx.conf
内容参考
shell
# user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
client_max_body_size 1024m;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
server {
listen 80;
# 可以配置泛域名,也可以配置单个具体的域名
server_name *.aday.fun;
# 转发 http 到 https
rewrite ^(.*)$ https://$host$1 permanent;
}
# 由于上面配置了泛域名,www.aday.fun 比较特殊,会自动跳转到第一个匹配的域名。
# 所以需要禁用 www.aday.fun 访问,直接返回 444
server {
listen 443 ssl;
server_name www.aday.fun;
ssl_certificate /etc/nginx/ssl/fullchain.cer;
ssl_certificate_key /etc/nginx/ssl/*.aday.fun.key;
return 444;
}
server {
listen 443 ssl;
server_name home.aday.fun;
ssl_certificate /etc/nginx/ssl/fullchain.cer;
ssl_certificate_key /etc/nginx/ssl/*.aday.fun.key;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
}
重启 Nginx
shell
./nginx -s reload
./nginx -s stop
./nginx